package main

import "fmt"

/**
recover错误拦截
	recover只有在defer调用的函数中才是有效的
*/
func main() {
	s := 6
	//访问数组中不存在的元素，素组下标越界
	teset(s)
}

func teset(n int) {
	/**
	defer testRecover()
	当出现异常后，会调用defer会调用一个方法
	testRecover()这个方法中，调用了我们的recover这个函数,将异常信息隐藏掉
		直接调用defer recover()		不起作用
	*/
	defer testRecover()
	//定义数组
	var s [5]int = [5]int{1, 2, 3, 4, 5}
	fmt.Println(s[n])
	fmt.Println(s)
}
func testRecover() {
	i := recover() //runtime error: index out of range [6] with length 5
	fmt.Println(i)
}
